home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Belgian Amiga Club - ADF Collection
/
BS1 part 65.zip
/
BS1 part 65
/
Multitext v1.0.adf
/
MULTITEXT100.GFA
(
.txt
)
< prev
next >
Wrap
GFA-BASIC Amiga
|
1992-04-03
|
96KB
|
2,173 lines
GFA-AMIGAB
FEHLER
RADIUS
HOR_GADGET
SUPERLAYER
DESTB
DESTH
BREITE
BREITEMM
HOEHEMM
POLZAHL
XRAST
RESTSTIFTE
BALKENBREITE
WINDBREITE
XZIEL F_FENSTER
OLDPRINTDENSITIY
PREFS_PUFFER IODRP_REQ
INDEX MENUTITEL
TOPAZ.FONT
STYLE
RECHTE_MAUSTASTE
INITBITMAP
XMOUSE QUELL_LOY
FORBID
PERMIT
ZIELTEILUNG_X
ZIELTEILUNG_Y
LINKE_MAUSTASTE
ALPHA
ALPHA2
ALPHA1
OFFSET
HORIZONTAL GEDRUECKT RUY_LAYER
XSSOLL
ARBEITS_WIND
SETFON
SPALTENBREITE
ZEILENHOEHE
QUELL_X
KONTR
HILFSRAST2
PIXEL
LAGE DATEINAME
RICHTUNG RICHTUNG1
TITEL
D_NAME
DEVICE_NAME
TEXT MENUPUNKT
PRGNAME
DISKFONTNAME
FONTNAME
BEREICH
OBJEKT
POINTER_UP
POINTER_DOWN
FONTGROESSE
TOPAZ
SEL_TEXT
IMAGE
TEXTATTR
POINTER_RIGHT
POINTER_LEFT
B CHUNKNAME
HEADER
PUFFER
MUSTER
GADGETDEFS
PROPINFO
PUFFER
GADGETSDEFS
HOR_GADGET
VER_GADGET
USERPORT
INTMESS
BITMAPSTRUKTURADRESSE
BITPLANEBASISADRESSE
KONTROLLWERT
BITMAPSTRUKTUR_ADR
BITPLANEADRESSE
LAYERSTRUCTPTR
LAYERINFOPTR
LAYER
BITMAP
SUPERBITMAP
SUPERBITPLANE
SUPERLAYER SUPERRAST
SUPERLAYERINFO
EREIGNIS
VIEWPORT
MAP COLOURMAP
ERGEBNIS
BITPLANE
POLZAHLEINTRAG
LAENGE BITPLANEN
PROP_GADGETS
PROP_GADGET
REGION RECTANGLE
RASTPORT
P_PORT F_FENSTER
F_RASTPORT
F_SCREEN
F_VIEWPORT
F_COLORMAP P_SIGTASK
STATUS
FEHLER
WINDADD SCREENADD
VP_MODI
MODUS
PREFS_PUFFER IODRP_REQ
REPLY_PORT
COPIED_RAST
COPIED_BITMAP
COPIED_BITPLANE BITPLANES
ZIELBITMAP
SIGNAL_NUMBER
TASK_NR SIGNAL_NR
COMAP
ERROR REPLYPORT
SCREENLAYERINFO
SCREENBITMAP LAYERRAST
NEWLAYER
NEWLAYERRAST
PRTLAYER
PRTLAYERRAST
ADRESSE
DISKFONTLIBRARY
START_TEXTFONT
TEXTATTR
AKT_TEXTFONT
OLD_TEXTFONT
GL_SCHRIFTARTEN
MOEGL_SCHRIFTARTEN
PUFFER_BITMAP
PUFFER_BITPLANE
ERSTE_ZEILE
ZEILENZAHL
ALTE_ERSTE_ZEILE
HILFSRASTPORT
HILFSBITMAP
HILFSBITPLANE
SIZEVORHER
SIZENACHHER
MESSAGE
SIZE1
SIZE2
HILFSLAYER
ITEXT INTUITEXT
QUELLRASTPORT
PRTLRAST
PRTRAST
BREITE
UNDO_BITMAP
UNDO_BITPLANE
FONT_NEW_GADADR
PROP_GADADR
VERTPOT_ADR
PUT_GADADR
PDT_GADADR
UNDER_GADADR
CURSIV_GADADR
BOLD_GADADR
OUT_GADADR
CENTER_GADADR
BREAK_GADADR OK_GADADR
VERTBODY
PUFFERLAENGE
STRING
STR_GADADR
STR_GADL
FONT_NEW_GADL
VERTPOT PROP_GADL
PUT_GADL
PDT_GADL
UNDER_GADL
CURSIV_GADL BOLD_GADL
OUT_GADL
CENTER_GADL
BREAK_GADL
OK_GADL
STRUKTUR_ADR
STRUKTUR_LAENGE
MEMORY
BOOLEAN_GADGET
BORDER
KOORD
IMAGE
STRING_ADR
STRING_GADGET
STRING_INFO
STRING_PUFFER
UNDO_PUFFER
POT_ADR PROP_INFO
INT_PUFFER
LONGWORD
PROPV_GADADR
PROPV_GADL HORIZBODY
SCROLLUP_GADADR
SCROLLUP_GADL
SCROLLDOWN_GADADR
SCROLLDOWN_GADL
HORIZPOT_ADR
PROPH_GADADR
PROPH_GADL
SCROLLLEFT_GADADR
SCROLLLEFT_GADL
SCROLLRIGHT_GADADR
SCROLLRIGHT_GADL LAYERINFO WIND_RAST
WIND_BITMAP
WIND_LAYER
WINDLAYERINFO WINDLAYER
LAYER_RAST LOX_LAYER
PROPH_GADGET
HORIZPOT
XSSOLL
GADADR
FLAGS
NUMGAD
Y2 VERTTBODY TVERTBODY
TVERTPOT
TVERTPOT_ADR
TPROP_GADADR
TPROP_GADL
TSCROLLUP_GADADR
TSCROLLUP_GADL
TPUT_GADADR
TSCROLLDOWN_GADADR
TSCROLLDOWN_GADL
CHUNK_LAENGE VIEWMODES
DATEIL
NGE_ALT
DATEILAENGE_ALT
LAENGE2
BODY_LAENGE HILFSRAST
PUFFER_RASTPORT
WEITER
MOEGLICHKEIT1
MOEGLICHKEIT2
MOEGLICHKET2
STATUS STREIFEN1 STREIFEN2
STREIFEN
ANTWORT
START_LOETAUGE
ZIEL_LOETAUGE
MULTI_GEDRUCKT
MODUS
ZIEHEN
RASTER1
ASYNCHRON_GEDRUCKT
ABBRUCH
POSITIONIERUNG
ACCEPT
AUTOSCROLLING
OUTLINE
LINKE_MAUSTASTE MENUPUNKT
RECHTE_MAUSTASTE
GADGET_GEDRUECKT
GADGET_LOSGELASSEN
KOPIEREN
ALLOCMEM
FREEMEM
ANZEIGEN
NOTMENUPUNKT
LINKEMAUSTASTE
GADGET_GEDR
GEFUELLT
ASYNCHRONGEDRUCKT
HORIZONTAL
INVERS GEDRUECKT
LINKE_MAUSTASTE_GEDRUECKT
LINKE_MAUSTASTE_GEDR
BREAK
TOGGLE
VERTIKAL
CENTER
RECHTE_MAUSTASTE_GEDRUECKT
CMAP BREAK_IFF
COMPLEMENT INVERSVID
SEITENVERHAELTNIS_GLEICH VERZERREN
NOTLINKE_MAUSTASTE_GEDRUECKT
NEUER_RASTPORT
KONTINUIERLICH
SQRT FNMESSAGE
SCHNITTW
SCHNITTS
FNSCHNITTS
XRAST ENDUPDATE
SCROLLLAYER
SETPREFS
ALLOCMEM
COPYMEM
OPENLIBRARY
MEMORY
AKJKJKJK
DKJDKJ
DK DKJDKJDKJ
X BLTBITMAP
SYNCSUPERBITMAP
CREATEUPFRONTLAYER
REM_RECT
CLIPBLIT
POINT
ZEILE
MEMORY
ALLOCMEM
FREEMEM
BITPLANE
POSITION
BREITE
HOEHE
GADGETBREITE
MODUS
DESTB
DESTH
WORTE
VOLLZEILEN
RESTSTIFTE
ZEILE
SCHRITT
SUPERBREITE
SUPERHOEHE
LAYOUTBREITE
LAYOUTHOEHE
XRAST
YRAST
XOFFSET1
YOFFSET1
XOFFSET2
YOFFSET2
XRAST1
YRAST1
XRASTX1
TOXR0
XSTART
YSTART
XZIEL1
YZIEL1
XZIEL2
YZIEL2
WINDBREITE WINDHOEHE DATEINAME
HOR_BREITE
DRX BOXBREITE
BALKENBREITE
BOXHOEHE
BALKENHOEHE
XSSOLL
YSSOLL
XZIEL
YZIEL
F_BREITE
F_HOEHE F_VP_MODI
B_HOEHE
VP_MODI
OLDPRINTSHADE
INDEX
XMOUSE
YMOUSE FONTHOEHE
XOFFSET
YOFFSET
QUELLBREITE
QUELLHOEHE
ZIELBREITE ZIELHOEHE QUELL_LOX QUELL_LOY
ZIEL_LOX
ZIEL_LOY MEMORYPTR
ALLOCPTR
FREEPTR
QUELLY
QUELLX
ZIELTEILUNG_X
ZIELTEILUNG_Y
ZIELRECHTECK_LOX
ZIELRECHTECK_LOY
ZIELRECHTECK_RUX
ZIELRECHTECK_RUY
ZIELX
ZIELY
WINDOWBREITE
OFFSET
INDEX_FIRST
ANZAHL
INDEX_FIRST_OLD INDEX_AKT
PROP_GAD_HOEHE
INDEX_LAST
TEXTLAENGE
MAX_CHAR INDEX_ALT
FONTGROESSE
YRU LOY_LAYER LOX_LAYER RUX_LAYER RUY_LAYER
XSOLL
LAYERBREITE
LAYERHOEHE
SCR_BREITE SCR_HOEHE
GRAPHIK_BREITE
GRAPHIK_HOEHE
QUELL_X
QUELL_Y QUELL_RUX QUELL_RUY
ZIEL_X
ZIEL_Y
ZIEL_RUX
ZIEL_RUY
ZAEHLER
ANFANG
ZIELSPALTE
SIGNUM ZIELZEILE
GESAMTHOEHE
GESAMTBREITE
LAST_X
LAST_Y
PIXEL
BITPLANE_BREITE
BITPLANE_HOEHE
PUFFER_BITPLANE_BREITE
PUFFER_BITPLANE_HOEHE
MINTERM
FEHLER
WEITER
WINDNR
GRAPHIKWERT
STIFT
RESTSTIFTE
BITNR
VERSION
POLZAHL
PKOLZAHL
ANTWORT
P_SIGBIT
OLDPRINTDENSITIY
OLDPRINTDENSITY
ERROR SIGNAL_NR
STATUS
RASTER
VERSIONALT
VERION
UNTERMENUPUNKT MENUPUNKT MENUTITEL
INDEX
MENUTITELIST
MENUPUNKTIST
STYLE
MUSTER
SPALTE
ZEILE
OBJEKT
SPEC TEXT_WIND
MAX_SEL_ANZAHL
WIND_NR GADGET_NR
TOGGLE
MODUS
STIL_ALT
STIL_AKT
AKT_STIL
ALT_STIL
ARBEITS_SCR
ARBEITS_WIND
INDEX_LAST
DUMMY
TIEFE
COMPRESSION
BYTES_ZEILE
BYTES_ZEILE_SCR
BITPLANE_INDEX
BYTES_GESCHRIEBEN
ANZAHL FUELLBYTE
BYTES_ZEILE_BTM
ZAEHLER
ARBEITSWIND LINIENART
MUSTER_WIND
DRAWMODE
ZEILENNR
MAUSPOS
GRAPHIKMODUS
EINGANGSVARIABLEN
OFFSETS
OFFSETS_VER1
OFFSETS_VER2
OFFSETS_VER3
FADENKREUZ
RESETED
POINT_RESET POINT_SET
ENDES
OFFSETS_VER4
ZEIGER
WEITER
SOFORT
QUARK
POINTER_UP
POINTER_DOWN
FONTS
FONTS2
MAUSZEIGER
POINTER_RIGHT
POINTER_LEFT
POINTER_LEFT1
POINTER_RIGHT1
POINTER_UP1
MENUPUNKTE
PDOWN
PLEFT
PRIGHT
PROPGADGET
VERT_PROPGADGET
HORIZ_PROPGADGET
DATEI_LADEN
DATEI_SICHERN
DATEI_DRUCKEN
DATEI_L
SCHEN DATEI_NEU
DATEI_ENDE
MODUS_ANH
MODUS_EINF
MODUS_
NDERN
MODUS_L
SCHEN
AKTIVIEREN_ANWEISUNG
AKTIVIEREN_WHILE
AKTIVIEREN_REPEAT
AKTIVIEREN_ZWEIFACHVERZ
AKTIVIEREN_MEHRFACHVERZ
AKTIVIEREN_UNTERPROGRAMM
FIGUREN_LINIE
FIGUREN_BOX
FIGUREN_LINIENZUG
RECTIN
FIGUREN_KREIS
FIGUREN_PUNKT
INIT_BITMAP
ALERT
CLOSE_BITMAP
AUFRAEUMEN
INFO_LAYER
INFO_BITMAP
KEYBOARD
ELSEIF
MESSAGE
GRAPHICDUMP
DATEI_DRUCKEN1
FADENGRAFIK
PLOT FUNKTIONS
LAYOUT_LADEN
LAYOUT_SICHERN
LAYOUT_DRUCKEN
LAYOUT_SPEICHER_DRUCKEN
LAYOUT_DISK_DRUCKEN
LAYOUT_L
SCHEN
GOSUB
LAYOUT_LOESCHEN
LAYOUT_INITIALISIEREN
LAYOUT_ENDE
LAYOUT_SPEICHER_DRUCKEN1
LAYOUT_INTIALISIEREN
ELEMENTE_LOETAUGE
ELEMENTE_LOETAUGE2
ELEMENTE_LOETAUGE1
ELEMENTE_VERBINDUNG
LOCAL
ELEMENTE_IC
LOETAUGE
ELEMENTE_VERBINDUNG_1
ELEMENTE_VERBINDUNG_2
LOESCHEN
SONSTIGES_LOESCHEN
GRAPHICSAVE
LAYOUT_SICHERN1
PROPGADGETS
SONSTIGES_RAHMEN
RAHMEN
FEHLER
ELEMENTE_VERBINDUNG_3
LAYOUT_SPEICHER_DRUCKEN2
HARDCOPY
LAYOUT_SPEICHER_DRUCKEN3
MULTI_AUFRAEUMEN
SINGLE_TASK_DRUCKEN
LAYOUT_MULTI_DRUCKEN
LAYOUT_MULTI_TASK_DRUCKEN
LAYOUT_MULTITASK_DRUCKEN PROCEDURE
QUARK
LAYOUT_VERBINDUNG
ELEMENTE_TRANSISTORFASSUNG
ELEMENTE_TRANSISTORFASSUGN
SONSTIGES_TEXT
LAYOUT_ASYNCHRON_DRUCKEN
SYNCHRON_AUFRAEUMEN
ASYNCHRONDRUCK_AUFRAEUMEN
SYNCHRON_DRUCKEN
ASYNCHRONGEDRUCKT_AUFRAEUMEN
TEXT_ZEILE
MENUBEHANDLUNG
EREIGNISBEHANDLUNG
MANUELLSCROLLING
MANUELL_SCROLLING
AKTIVIERE_ROM_ZEICHENSATZ
AKTIVIERE_DISK_ZEICHENSATZ
AKTIVIERE_ZEICHENSATZ
SCHRIFTART
MANIPULATIONEN_KOPIEREN
UNTIL
DEBUG SCROLLING
PUT#MANIPULATIONEN_KOPIEREN_VERSCHIEBEN
MANIPULATIONEN_VERZERREN
AUSGABE
SPEZIAL_INTERPOLIEREN
SPEZIAL_INTERPOLIEREN_METHODE1
SPEZIAL_INTERPOLIEREN_ABTRAGEN
SPEZIAL_INTERPOLIEREN_AUFF
SPEZIAL_OUTLINE
SPEZIAL_RAHMEN
SPEZIAL_MUSTER_EINSTELLEN
WHILE
SPEZIAL_F
SPEZIAL_BEREICH_F
MANIPULATIONEN_DREHEN BILDPUNKT
DEBUYA
DEBUGA
SONSTIGES_FED_LADEN
GRAPHIK_PUNKT
GRAPHIK_LINIE
GRAPHIK_OBJEKT
MANIPULATIONEN_INVERTIEREN
MANIPULATIONEN_LOESCHEN
SHOW_REGION
LAYOUT_SYNCHRON_DRUCKEN
TEXT_ZEILE_ALT
TEXT_ZEILE_ITEXT
RECTIN_SPIEGELN
MANIPULATIONEN_SPIEGELN
REFRESH
SONSTIGES_UNDO
MANIPULATIONEN_ZENTRIEREN
SPEZIAL_FARBEN_TAUSCHEN
SONSTIGES_FARBEN_TAUSCHEN
GRAPHIK_PINSEL
TEXT#TEXT_BENUTZEROBERFLAECHE_AUFRAEUMEN
SELECTOR_REFRESH
MODIFYTPROP TESTFONTS
TEXT_BENUTZEROBERFLAECHE
FONTS_VERZEICHNIS
STRING_GADGET
BOOLEAN_TGADGET
PROP_GADGET
BOOLEAN_IGADGET
REM_GADGET TEXT_INIT"TEXT_BENUTZEROBERLAECHE_AUFRAEUMEN
TEXT_ZEILE_1
TEXT_AUSWERTUNG
TEXT_DARSTELLUNG
INIT_ARBEITSFLAECHE
MAUSZEIGER
PULL_DOWN_MENU
PREFERENCES
INIT_OLD
INIT_IMAGES
POINTER_LEFT
POINTER_RIGHT1
SELECT
MODIFYPROP
NEWMODIFYPROP
INIT_MAUSZEIGER
INIT_PULL_DOWN_MENU
CREATEUPFRONTLAYER INIT_TEXT
INIT_TEXT_BENUTZEROBERFLAECHE
INIT_FONTS_VERZEICHNIS
INIT_TESTFONTS
INIT_TESTFONTS_VERZEICHNIS#AUFRAEUMEN_TEXT_BENUTZEROBERFLAECHE
INIT_PREFERENCES
INIT_UNDO_BITMAP
RETRURN
GLOBAL_VARIABLES
TPROP_GADGET
AUFRAEUMEN_ASYNCHRONDRUCK
AUFRAEUMEN_ASYNCHRON
CHANGE_STYLE
TEXT_CHANGE_STYLE
TEXT_CHANGE_FONT
TEXT_SELECTOR_REFRESH
DRAW_IMAGE
O_TEXT_DARSTELLUNG
INIT_SBITMAP
INIT_TEXT_MASKE
INIT_ARBEITS_MASKE
INIT_ARBEITS_SCR
INIT_SLAYER
INIT_ARBEITS_WIND
INIT_TEXT_WIND
INIT_ARBEITS_GADGETS
INIT_FONT_VERZEICHNIS
LAYOUT_NEU
LAYOUT_LADEN_IFF
BMHD_LESEN
BODY_LESEN
LAYOUT_INIT
LAYOUT_LADEN_INTERN
LAYOUT_SICHERN_INTERN
LAYOUT_SICHERN_IFF
LAYOUT_MISCHEN_INTERN
LAYOUT_MISCHEN
GRAPHIK_KURVE GRAPHIK_K
GRAPHIK_TEST_KURVE%MANIPULATIONEN_KOPIEREN_VERSCHIEBEN_O
RECTIN2
BREITE_VERKLEINERN
BREITE_VERGROESSERN
HOEHE_VERKLEINERN
HOEHE_VERGROESSERN
MANIPULATIONEN_VERZERREN_1
MANIPULATIONEN_SPIEGELN1$MANIPULATIONEN_KOPIEREN_VERSCHIEBEN1
GROESSE_AENDERN
SPEZIAL_GESAMTANSICHT
SONSTIGES_GESAMTANSICHT
SPEZIAL_FL
CHE_F
SPEZIAL_FLAECHE_FUELLEN
SPEZIAL_FUELLEN
RECTFILL
SPEZIAL_BEREICH_FUELLEN GRAPHMODE
SPEZIAL_BOLD
SPEZIAL_SHADOW
SPEZIAL_SHADOW_EINST
SPEZIAL_MUSTER_DEFINIEREN
SPEZIAL_MUSTER_WAEHLEN
HISTORY
PAUSE
WARTEN
BMHD_LESEN_2
BODY_LESEN_2
REM_RECT
LAYOUT_MISCHEN_ALT
GRAPHIK_FREIHAND
CURVEX
CURVEY
MESSAGE
SCHNITTS
SCHNITTW
XRAST
YRAST
XRASTH
YRASTH
TAUGE
LOETAUGE
WINKEL
XMOUSE
YMOUSE SAVE_RECT
REM_RECT
REMRECT
SPEICHERBEDARF
REM_REMRECT
MOUSEX
XMOUSEX
GRAPHIKMODUS
TOGGLE
PIXEL
PIXELX
PIXELY
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Datei MULTITEXT100.GFA
(bzw. MULTITEXT100.ASC)
MultiText
=========
Version 1.00
Programm zum Generieren der unterschiedlichsten Schriften
und Graphiken sowie deren Ausdruck auf Matrixdruckern
Copyright by Wolfgang Schuler (WKS), 04.-10.1990
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Zuwenig Speicherplatz!
(Auch bei der Initialisierung kann das Prg. abge-
brochen werden m
ssen!)
In den meisten Prozeduren kann ein Menupunkt auf-
gerufen werden!
============================ Initialisierung ================================
Nimmt alle Initialisierungen des Programms MultiText unter Verwendung der
Initialisierungsunterprozeduren vor.
MultiText 1.00 by WKS
M&T 1992FF
Programmname
Screen-, Windowtitel voreinstellen
F
Aktuellen Datei-Zugriffspfad setzen
Images initialisieren
(203.2mm * 240.0mm: DIN A4 Einzelblatt)
Versuchen, Superbitmap anzulegen
Zuwenig Speicherplatz!!
Verzeichnis aller verf
gbaren Fonts aufbauen
Aufbau des folgenden Window-Aufbaus unsichtbar machen
Fenster f
r Texteingabe und zugeh
rige Eingabemaske generieren
Arbeitsfl
chen-Fenster aufbauen
Super-Layer darauf installieren
Probleme mit|Super-Layer!
Gadgets des Arbeitsfl
chen-Fensters
$Kein Speicher f
r|Preferences-Puffer!
'Zuwenig Speicherplatz|f
r Undo-Funktion!
TextFont-Struktur des aktuellen Fonts feststellen:
Aktuelles Muster voreinstellen:
Liest die Daten der Images ein, die f
r die Gadgets ben
tigt werden.
&X1111111111111111
&X1100000000000011
&X1100000110000011
&X1100001111000011
&X1100011111100011
&X1100111111110011
&X1101111111111011
&X1100011001100011
&X1100011001100011
&X1100011001100011
&X1100011111100011
&X1100000000000011
&X1111111111111111
&X1111111111111111
&X1100000000000011
&X1100011111100011
&X1100011001100011
&X1100011001100011
&X1100011001100011
&X1101111111111011
&X1100111111110011
&X1100011111100011
&X1100001111000011
&X1100000110000011
&X1100000000000011
&X1111111111111111
&X11111111111111111111111111000000
&x11000000000000000000000011000000
&x11000000111000000000000011000000
&x11000011111111111111100011000000
&x11001111111000000001100011000000
&x11000011111111111111100011000000
&x11000000111000000000000011000000
&x11000000000000000000000011000000
&x11111111111111111111111111000000
&X11111111111111111111111111000000
&x11000000000000000000000011000000
&x11000000000000011100000011000000
&x11000111111111111111000011000000
&x11000110000000011111110011000000
&x11000111111111111111000011000000
&x11000000000000011100000011000000
&x11000000000000000000000011000000
&x11111111111111111111111111000000
Versucht, die Superbitmap anzulegen. Im Fehlerfall ist superbitmap%=0.
Umrechnung mm in Pixel:
MEMF_CLEAR, MEMF_CHIP
Basisadresse der ersten und einzigen Bitplane:
(Zuwenig Speicherplatz f
r Bitplane)
Adresse der Super-Bitplane in die Bitmap-Struktur eintragen:
ffnet den Screen f
r das Programm und liest wichtige Werte aus der
Screen-Struktur aus.
Nummer des Screens f
r das Programm
Arbeits-Screen
ffnen
Farben setzen
Adresse der Layerinfo-Struktur
Supergrafikbuch, S.168
Supergrafikbuch, S.209
Legt das Arbeitsfl
chenfenster an.
Nummer des Windows f
r die Arbeitsfl
Versucht, auf dem Arbeits-Window (Nummer arbeits_wind|) einen Super-
Layer einzurichten, im Fehlerfall ist superlayer%=0.
erdem wird um den Layer eine Box gezeichnet, die auf dem
Arbeitswindow liegt.
Zu initialisierende Variablen:
Adresse des normalen Window-Rastports
Adresse der normalen Window-Bitmap
(Koordinaten des Layers sind auf linke obere Ecke des Screens bezogen (0,0))
(CreateUpFrontLayer() unter GFA falsch implementiert!)
Wenn superlayer%<>0, also Super-Layer existiert
(Permanente Deaktivierung des Layers durch eintragen der Fensteradresse
in die Layer-Struktur)
(Das Langwort ab layer%+40 ist ein Zeiger auf das Window)
(Wichtig, auch f
r Messagebehandlung, ansonsten Speicherverlust)
Adresse der Super-Rastport-Struktur
(Offsets: xoffset: 4, yoffset: 22)
Benutzeroberl
chen-Gestaltungselemente erzeugen:
XF Ausgaben auf Arbeitswindow!
Rahmen um Layer
Senkrechte Linien verst
Superbitmap s
ubern:
Installiert die Gadgets auf der Arbeitsfl
(Balkenl
nge darf nicht gr
er werden als Reglerbereich!)
Richtet auf dem aktuellen Window einen neuen Mauszeiger ein.
17 Langworte, 17 Zeilen
&X00000000000000000000000000000000
&X00000000000000001111000000000000
&X01100000000000001001000000000000
&X01000000000000001011111000000000
&X00011100000000001110001000000000
&X00010000000000000010111111000000
&X00010111100000000010100001000000
&X00000100000000000011101111111000
&X00000101111100000000101000001000
&X00000101000000000000101011111000
&X00000001000000000000111010000000
&X00000001000000000000001010000000
&X00000001000000000000001010000000
&X00000000000000000000001110000000
&X00000000000000000000000000000000
&X00000000000000000000000000000000
&X00000000000000000000000000000000
Pull-Down-Menu erzeugen.
Layout, Laden, Sichern,------------------, Mischen
------------------, Drucken,------------------, Neu
Initialisieren,------------------, Ende,""
Text, Zeile eingeben ,""
Manipulation, Kopieren, Verschieben, Zentrieren, Invertieren
Drehen, Spiegeln,! Vertikalachse,! Horizontalachse
ndern, Verzerren,------------------, Bereich l
schen,""
Spezial, Interpolieren,! Abtragen,! Auff
--------------------, Rahmen,--------------------, Bold, Outline, Shadow
--------------------, F
llen, Bereich f
llen,--------------------
Muster w
hlen, Muster definieren,""
Graphik, Freihand,! kontinuierlich,! unterbrochen, Linie, Rechteck, Kreis, Ellipse, Kurve,----------, Pinsel,""
Optionen, Graphikmodus,! transparent,! replace,! XOR,! AND
--------------, Linienart,! durchgezogen,! gestrichelt,! punktiert
! strichpunktiert,--------------, Mausposition,! aus,! mm,! Pixel,""
Sonstiges, Undo,------------------, Gesamtansicht,------------------
NewShell, Fed,------------------, Farben tauschen,""
Pull-Down-Menu initialisieren ( Voreinstellungen, H
kchen):
! transparent
! durchgezogen
! ausF
Zeile eingeben Fg
voreingestellter Graphikmodus: transparent (JAM1)
voreingestellte Linienart: durchgezogen
Mausposition wird nicht angezeigt (1: Mausposition
! wird in cm, 2: Mausposition wird in Pixeln angezeigt)
Stellt Druck-Preferences so ein, da
der Ausdruck des Arbeitsfl
chen-
inhalts in der gew
nschten Weise erfolgt. Steht nicht gen
gend Speicher-
platz f
r den Puffer zur Verf
gung, so ist prefs_puffer%=0.
F Achtung: hier nicht GetPrefs!
(GFA 3.041 Fehler)
Alte Werte retten
Schwarz-Wei
-Darstellung
Druckdichte 1 (120dpi*72dpi)
Neue Einstellungen aktivieren
r die Undo-Funktion mu
eine eigene (unsichtbare) Bitmap angelegt
werden, die mittels der Prozedur refresh mit der normalen (Arbeitsfl
chen-)
Bitmap vor Ver
ndern der Arbeitsfl
che synchronisiert wird. So re-
sentiert die "Undo-Bitmap" immer den Zustand der "Arbeits-Bitmap"
vor der letzten Ver
nderung. Bei Bedarf wird die Arbeits-Bitmap mit der
Undo-Bitmap synchronisiert, so da
die letzte Operation auf der Arbeits-
Bitmap r
ngig gemacht ist. Das Anlegen der Undo-Bitmap ist die
Aufgabe dieser Prozedur. Ist das Generieren der Undo-Bitmap gescheitert,
so enth
lt die globale Variable undo_bitmap% den Wert 0.
MEMF_CLEAR, MEMF_PUBLIC
(in die Bitmap-Struktur eintragen)
Fe Undo-Bitmap mit Arbeits-Bitmap synchronisieren (hier s
ubern)
Legt ein alphabetisches Verzeichnis in dem Zeichenkettenfeld fonts$() der
im Systemverzeichnis FONTS: vorhandenen Fonts an.
Die Fontbezeichnungen sind nach der Prozedur in dem globalen Zeichenketten-
feld font$() von font$(1) bis font$(anzahl&).
Dabei
ffnen der Diskfont-Library.
diskfont.library
Auslesen der Struktur:
Anzahl der vorhandenen Fonts
Stringarray entsprechend gro
dimensionieren
DISK FF
(28 Zeichen)
RAM FF
30 Zeichen f
r den Fontnamen
Fontname
5 Zeichen f
r die Fontgr
Fontgr
Jedes Element hat damit eine
nge von 63 Zeichen.
In aufsteigender alphabetischer Reihenfolge sortieren
Zuwenig Speicherplatz!
OK !
diskfont.library fehlt!
OK !
Erzeugt die Benutzeroberfl
che f
r die Texteingabefunktion
(12 Gadgets)
Konstanten:
Name des voreingestellten Fonts:
?topaz.font 8 RAM F
Anzahl der maximal im Fontselektor darstellbaren Eintr
Nummer des Windows
TexteingabeF
TEXT:F(
Fontselektor und zugeh
rige Gadgets:
FONT:Fh
?Fontname Gr
e RAM/DISKF
Topaz 8 - Font finden:
Anzahl Fonts <= Zeilen im Selektor
Anzahl Fonts > Zeilen im Selektor
Topaz-Font kann in die
oberste Zeile geschrieben
werden
( Kann nicht ...
Fonts in Selector schreiben:
Aktiven (Topaz-8) Font markieren:
Gadgets f
r Scrolling installieren:
(Balkenl
nge darf nicht gr
er werden als Reglerbereich!)
STIL:F
Unterstrichen!
Kursiv!
Fett!
Outline!
SATZ:F
Zentriert!
Abbruch!
Default-Stil: Normal
=============================================================================
================================ Aufr
umen ==================================
Diese Prozedur gibt s
mtlichen allokierten Speicherplatz zur
ck und
scht alle initialisierten Objekte.
umen des Font-Equipments:
Urspr
nglichen (ROM-)Font setzen!
Wenn im Multitasking gedruckt wurde, dann ben
tigte Strukturen an das
System zur
ck und Device-Kanal schlie
Speicherplatz der Super-Bitmap-Struktur zur
ck, wenn sie existierte:
Speicherplatz der Super-Bitplane zur
Benutzeroberfl
che f
r Textfunktion schlie
Speicherplatz der Gadgets zur
Speicherplatz des Super-Layers zur
ck, wenn er existierte:
Alte Preferences-Einstellungen wieder herstellen:
Alte Preferences-Einstellungen
Speicherplatz f
r "Undo-Bitmap" zur
ck, falls sie existierte:
Gibt alle beim Multitasking-Druck ge
ffneten Strukturen frei.
Teste, ob Druckvorgang noch andauert:
*Druckvorgang dauert noch an.|Bitte warten!!
Warten, bis Druckvorgang fertig
Beim Drucken trat Fehler|NR.
auf!!
Entfernt alle im Texteingabe-Fenster vorhandenen Gadgets und gibt
ihren belegten Speicherplatz zur
=============================================================================
========================= Message- und Menubehandlung =======================
schen (FALSE setzen)
Kennummer des evt. eingetretenen Ereignisses
Adresse des evt. betreffenden Objekts
Kennummer des evt. angew
hlten Menupunkts
Speicherplatz (f
r Int.-Msg.-Strukt.) zur
Wenn ein Gadget gedr
ckt wurde
(Adresse ist dann in adresse% zu finden
Wenn ein Gadget losgelassen wurde
(Adresse ist dann in adresse% zu finden
Intuiticks (periodische Nachricht von
! Intuition (hier zur Aktualisierung der
! Mauspositionsanzeige.
Ausgabe in mm
X / Y - Position in mm:
mauspos|=2, Ausgabe in Pixeln
X / Y - Position in Pixeln:
Close-Gadget wurde gedr
Wenn rechte Maustaste gedr
Wenn Menupunkt angw
Menu finden
Menupunkt finden
Untermenupunkt finden
Verzweigt in Abh
ngigkeit des durch den Benutzer gew
hlten Menupunkts
zu der entsprechenden Prozedur.
Ereignis gilt damit als bearbeitet
LadenF
SichernF
MischenF
DruckenF
NeuF
InitialisierenF
EndeFi
Zeile eingeben F
KopierenFD
VerschiebenF
ZentrierenF
InvertierenF
DrehenFr
! HorizontalachseFz
! VertikalachseFc
ndernF
VerzerrenF
Bereich l
schenF
! AbtragenF
! Auff
llenFi
RahmenF
BoldF-
OutlineF
ShadowF
llenFl
Bereich f
llenFg
Muster w
hlenF
Muster definierenF
! kontinuierlichF
! unterbrochenF
LinieF
RechteckFF
KreisF
EllipseF
KurveF
PinselFF
! transparentF
bisherigen Haken l
schen
neuen Haken setzen
! replaceFn
bisherigen Haken l
schen
neuen Haken setzen
! XORFc
bisherigen Haken l
schen
neuen Haken setzen
! ANDFc
bisherigen Haken l
schen
neuen Haken setzen
! durchgezogenF
bisherigen Haken l
schen
neuen Haken setzen
! gestricheltF
bisherigen Haken l
schen
neuen Haken setzen
! punktiertFF
bisherigen Haken l
schen
neuen Haken setzen
! strichpunktiertFd
bisherigen Haken l
schen
neuen Haken setzen
! ausFF
Wegen XOR erforderlich
bisherigen Haken l
schen
neuen Haken setzen
Titel l
schen
! mmF
bisherigen Haken l
schen
neuen Haken setzen
! PixelF-
bisherigen Haken l
schen
neuen Haken setzen
UndoF
GesamtansichtF
FedF
:Tools/Fed!
NewShellF-
NewShell!
Farben tauschenF
HilfeF
Ein Gadget wurde gedr
ckt, abh
ngig von der in adresse% stehenden
Gadget-Adresse wird entweder das horizontale oder das vertikale Prop.-Gadget
abgefragt bzw. auf das Bet
tigen der Boolean-Gadgets reagiert.
Dies geschieht solange, bis das bet
tigte Gadget wieder losgelassen wird.
Es ist n
tig, adresse% in adr% zu sichern, da sich adresse% bei dem
erneuten Aufruf der message-Prozedur in der Schleife
ndern kann
=============================================================================
================================= Menu "Layout" =============================
dt ein Layout (Bitmap-Graphik) im IFF-ILBM-Format. Es werden IFF-Bilder
geladen, die folgenden Anspr
chen gen
- eine Bitplane (Tiefe=1)
- Breite, H
he innerhalb der zul
ssigen Ma
CMAP- und CAMG-Chunk werden nicht ausgewertet, es k
nnen also auch LORES-
Bilder geladen werden.
Laden / IFF-ILBM!
Load!
(Wenn dateiname$="" wurde Abbruchknopf angew
Keine Datei!!
Datei existiert nicht!!
aktuellen Pfad setzen
MEMF_CLEAR, MEMF_PUBLIC
(Wenn Dateil
nge < 12)
Keine IFF-ILBM-Datei!!
12 ersten Bytes einlesen. Und auswerten:
ILBMF
Keine IFF-ILBM-Datei!!
Bitte warten!Fn
BMHDF
BODYF
Unbekannten Chunk
berspringen:
Speicher f
r Puffer freigeben
Datei wieder schlie
Sichert den Inhalt der aktuellen Arbeitsfl
chenbitplane im IFF-Format
unter einem vom Benutzer zu bestimmenden Dateinamen. Die Daten werden
in unkomprimierten Format abgespeichert.
Anzahl der Bytes, die die Bitplane beansprucht, berechnen:
Sichern / IFF-ILBM!
Save!
Keine Datei!!
Zugriffspfad aktualisieren
Kennung IFF anh
.IFFF
'Datei existiert bereits!|
berschreiben?!
Nein|Ja!
antwort|=0, wenn Datei nicht existiert
fen, ob Laufwerk voll:
nge der zu
berschreibenden Datei ermitteln
Zuwenig Platz auf Laufwerk!
MEMF_CLEAR, MEMF_PUBLIC
Zuwenig Speicherplatz!!
Bitte warten!F
CAMG-, BMHD-, CMAP-Chunks in Puffer schreiben:
FORM FC
Gesamtl
nge (ohne "FORM")
ILBM F
BMHD F
BMHD-L
Tiefe
xaspect
yaspect
Screen-Breite
Screen-H
CMAP FG
CMAP-L
CAMG Fn
CAMG-L
Viewmode: HIRES
BODY F=
Inhalt der Window-Bitmap -> Superbitmap
Bitplane-Inhalt speichern
dt ein Layout (Bitmap-Graphik) im IFF-ILBM-Format in die aktuelle
Arbeitsfl
che. Die Graphik mu
dabei folgenden Anspr
chen gen
- Breite und H
he nicht gr
er als die entsprechenden Ma
e der
Arbeitsfl
- eine Bitplane (Tiefe=1)
CMAP- und CAMG-Chunk werden nicht ausgewertet, es k
nnen also auch LORES-
Bilder geladen werden.
Mischen / IFF-ILBM!
Load!
Nicht mit DIR$(0) arbeiten! (Sonst Speicherplatzfressen)
(Wenn dateiname$="" wurde Abbruchknopf angew
Keine Datei!!
Datei existiert nicht!!
MEMF_CLEAR, MEMF_PUBLIC
(Wenn Dateil
nge < 12)
Keine IFF-ILBM-Datei!!
12 ersten Bytes einlesen. Und auswerten:
ILBMF
Keine IFF-ILBM-Datei!!
Superbitmap --> Undo-Bitmap
(Es ist wichtig, die zweite Bedingung zu
berpr
fen, weil nach dem
letzten Chunk noch 1 Byte kommen kann (F
llbyte?), das bei Inter-
pretation als Chunk zur Fehlermeldung "Fileende erreicht" f
Es werden nur die Chunks BMHD und BODY ausgewertet.
BMHDF
BODYF
Unbekannten Chunk
berspringen:
Rastport-Inhalt solange dem Mauszeiger folgen lassen, bis linke
Maustaste gedr
ckt wird:
Speicher f
r Puffer freigeben
Datei wieder schlie
Liest den BMHD (BitMapHeaDer)-Chunk (Amiga Intern 2, S.298) und
initialisiert gem
den Angaben in diesem Chunk eine Arbeitsfl
(Der BMHD-Chunk ist immer 20 Bytes lang.)
Gesamten Chunk in Pufferspeicher einlesen
Breite der Graphik
he der Graphik
Tiefe des Screens (= Anzahl Bitplanes)
Kompressionsverfahren
Arbeitsfl
che demgem
initialisieren:
Nur einfarbige Graphiken!!
(Arbeitsfl
che soll belassen werden und neuer Rastport gem
den Ma
der Graphik initialisiert werden)
+Graphik zu gro
r|aktuelle Arbeitsfl
che!!
Zuwenig Speicherplatz!!
Zuwenig Speicherplatz!!
(Arbeitsfl
che soll gem
den Ma
en der Graphik initialisiert werden)
33333
(Breite/H
he in mm)
e falsch!!
Liest den BODY-Chunk und
bertr
gt die Daten in die zuvor beim Lesen des
BMHD-Chunks (Prozedur bmhd_lesen) ge
ffneten Bitmap. Dabei k
nnen un-
komprimierte und nach dem ByteRun1-Verfahren komprimierte Daten gelesen
werden. Die Kompressionsart wurde beim Lesen des BMHD-Chunk ermittelt.
BMHD-Chunk mu
bereits gelesen sein!
Bytes pro Zeile der Graphik
Bytes pro Zeile der Bitmap
unkomprimiert
nach ByteRun1-Verfahren komprimiert
Wenn Chunkl
nge ungerade, noch das
llbyte lesen, sonst wird in chunk_lesen
versucht, weitere Chunks zu lesen, wobei
! das Fileende erreicht wird.
"Unbekanntes|Kompressionsverfahren!!
BODY-Chunk
berlesen
&Chunks fehlen|bzw. Reihenfolge falsch!!
F BODY-Chunk
berlesen
glicht Multitasking-Druck. Ist zuwenig Speicherplatz vorhanden
oder tritt sonst ein Fehler auf, so wird single-task gedruckt
(Prozedur synchron_drucken wird aufgerufen).
Wirklich drucken?!
Ja | Nein !
Superbitmap mit normaler Bitmap synchronisieren:
~CopySBitMap(superlayer%) ! Komplement
re Funktion
Parameter f
r Druckausgabe setzen:
Wenn schon einmal im Multitasking gedruckt wurde, dann die benutzten
Strukturen und Kan
le schlie
en und benutzten Speicher zur
ckgeben:
Sichern des Superrastports:
;Leider zuwenig Speicher|f
r Multitaskingdruck|Bitte warten!!
Speicherplatz f
r die ben
tigten Strukturen allokieren:
<Leider zuwenig Speicher|f
r Multitasking-Druck|Bitte warten!!
Versuche, ein Signal-Bit zu belegen:
-Multitasking-System
berlastet.|Bitte warten!!
Eigene Tasknummer suchen:
Reply-Port initialisieren und in die Systemliste einf
Typ: Message-Port
Zeiger auf Namen des Devices
Signal-Bit
?F Tasknummer
Zeiger auf erste Datenstruktur
Zeiger auf vorletzte Datenstruktur
Device-Name
IODRPReq-Struktur initialisieren und Kanal zum printer.device
ffnen:
Node Typ (hier: Message)
Zeiger auf Message-Port (Reply-Port)
Befehl (11: DumpRastport)
Adresse des Rastports
Adresse der Colormap
Viewport-Modi
Rastportbreite
Rastporth
Drucker: Breite
Drucker: H
Spezial-Druckmodi
ffnen des printer.device:
printer.device
%Drucker ist nicht frei.|Bitte warten!!
Beim Drucken trat Fehler NR.
auf!!
Wird aus der Prozedur layout_multi_task_drucken aufgerufen, wenn
Multitasking-Druck unm
glich ist.
Alle Parameter des HARDCOPY-Befehls werden als globale Eingangsparameter
erwartet.
scht die Arbeitsfl
che (kann mit Undo wieder r
ngig gemacht
werden, da nur die Arbeitsbitmap, nicht aber die Undo-Bitmap
scht wird).
"Aktuelles Layout wirklich l
schen?!
Ja|Nein!
Superbitmap s
ubern:
Initialisiert die Arbeitsfl
che gem
Benutzereingaben.
BLayout wirklich neu initialisieren?|(Arbeitsfl
che wird gel
scht!)!
Ja|Nein!
InitialisierenF
-Ausdehnung in x-Richtung in mm (max 203,2 mm)"
-Ausdehnung in y-Richtung in mm (max 360,0 mm)"
33333
Speicherplatz der Superbitmap-Struktur zur
Speicherplatz der Superbitplane zur
Speicherplatz der Gadgets zur
Speicherplatz des Super-Layers zur
Speicherplatz f
r "Undo-Bitmap" zur
ck, falls sie existierte:
Rahmen um Layer l
schen
Elemente gem
den neuen Ma
en erzeugen:
Versuchen, Superbitmap anzulegen
Zuwenig Speicherplatz!!
Super-Layer darauf installieren
Probleme mit|Super-Layer!
Aktuellen Font setzen
'Zuwenig Speicherplatz f
r Undo-Funktion!
Wirklich abbrechen?!
Ja | Nein !
=============================================================================
=================================== Menu "Text" =============================
Wichtig!
Sonst funktioniert ActivateGadget() nicht!
String-Gadget aktivieren
String-Eingabe mit
F% RETURN beendet
Selector-Titelzeilen-Gadget wurde gedr
(Einlesen eines neuen Font-Verzeichnisses
Selector-Box l
schen
(Balkenl
nge darf nicht gr
er werden als Reglerbereich!)
Proportional-Gadget wurde gedr
Neuen Index des ersten Eintrags in der Selektorbox berechnen:
(Mit CARD arbeiten!)
Selektorinhalt neu aufbauen:
Boolean-Gadget zum Hochscrollen (des Schiebers)
wurde gedr
Boolean-Gadget zum Runterscrollen (des Schiebers)
wurde gedr
Boolean-Gadget f
r Unterstrichen
Boolean-Gadget f
r Fettschrift
Boolean-Gadget f
r Kursivschrift
Boolean-Gadget f
r Outline-Schrift
Boolean-Gadget f
r Zentrierung
Boolean-Gadget f
r Abbruch
OK-Boolean-Gadget
Font wurde ausgew
(Ausdruck mit MIN ist wichtig f
lle, in denen anzahl&<max_sel_anzahl|)
Wichtig, damit Ereignis: Loslassen des OK- / Abbruch-Gadgets
empfangen wird, sonst Probleme!!!
(Ereignis geht verloren)
(Nicht FRONTW #arbeits_wind|, weil Superlayer sonst hinten bleibt!)
4 FB
Wenn neuer Font gew
hlt, diesen aktivieren:
(Bei Abbruch keine Ver
nderungen akzeptieren)
Aktiviert auf dem Arbeits-Rastport (superrast%) den Font, der durch
den Eintrag mit den Index index& aus dem Zeichenkettenfeld font$()
spezifiziert wird. Automatisch wird der Font in der aktuellen
Auszeichnung (Schriftstil) aktiviert.
Diskfont-Library mu
ffnet sein (weil Funktion OpenDiskFont() benutzt
wird)!
Textattr-Struktur generieren:
Neuen Font laden:
DISKF
(Wenn Bit 1 des Preferences-Bytes der TextFont-Struktur gesetzt (TRUE)
ist, so handelt es sich um einen Disk-Font, andernfalls um einen
RAM/ROM-Font.)
Achtung, darf nicht auf ROM-Fonts angewandt werden!
Font konnte nicht geladen werden!
Diskfont-Library fehlt!
Immer erforderlich, weil bei einer
Font-
nderung der Stil nicht belassen sondern wieder auf normal gesetzt
Aktiviert den Schriftstil stil| auf dem Arbeits-Rastport
(superrast%).
Bewegt den eingegebenen Text gem
der Mausposition
ber die Arbeitsfl
Eingegebenen Text auslesen:
FF
Text l
schen
Undo-Bitmap mit Arbeitsbitmap synchronisieren
Wenn Schriftart outline
Aktualisiert die Anzeige der Fonteintr
ge in der Selektorbox
(Ausdruck mit MIN wichtig f
lle, in denen anzahl&<max_sel_anzahl|)
Aktiven Font markieren
=============================================================================
================================= Menu "Manipulationen" =====================
Die Benutzung der Funktionen save_rect() und rem_rect() in Kombination
mit der Graphics-Funktion ClipBlit() hat gegen
ber den Basic-Anweisungen
GET und PUT den Vorteil, da
Clipping durchgef
hrt wird (Programm
rzt nicht ab, wenn Graphik au
erhalb der Layer-Grenzen kopiert wird)
und da
der ben
tigte Speicherplatz nicht im Basic-Speicherbereich
allokiert wird, sondern von au
erhalb.
Eingabe des zu verschiebenden Bereichs
Zuwenig Speicher!!
Superbitmap --> Undo-Bitmap
Berechnung der linken oberen Ecke des zu verschiebenden Bereichs
relativ zu B(xb&|yb&):
Bereich dem Mauszeiger folgen lassen:
Wenn sich Mauszeigerkoordinaten ge
ndert
Zentrieren eines rechteckigen Bereichs bei freier Beweglichkeit in
y-Richtung
Eingabe des zu verschiebenden Bereichs
Superbitmap --> Undo-Bitmap
Berechnung der linken oberen Ecke des zu verschiebenden Bereichs
relativ zu B(xb&|yb&):
Bereich an der ursp. Stelle
! l
schen
Bereich dem Mauszeiger in y-Richtung folgen lassen:
Wenn sich Mauszeiger-y-koordinate ge
ndert
hat, Bereich verschieben
Superbitmap --> Undo-Bitmap
Ausgabeteil:
Bitte warten!Fn
Superbitmap mit normaler Bitmap synchronisieren:
schen des Quellbereichs auf der Arbeitsfl
Ausgabeteil (mit Verarbeitung):
Superbitmap --> Undo-Bitmap
Wenn Punkt gesetzt (schwarz)
Es mu
unbedingt darauf geachtet werden, da
vor Verlassen der Prozedur
der Rastport superrast% wieder zum aktuellen Rastport gemacht wird, weil
sonst keine Eingaben mehr m
glich sind (
ber den IDCMP) und das System
her oder sp
ter abst
Spiegeln eines rechteckigen Bereichs an seiner horizontalen bzw. vertikalen
Spiegelachse.
Superbitmap --> Undo-Bitmap
Horizontale Spiegelachse
Vertikale Spiegelachse
Eingabe des Quell- und des Zielbereichs, Umrechnung des Quell- auf
den Zielbereich. Wenn seitenverhaeltnis_gleich!=FALSE, kann das Seitenver-
ltnis des Quellbereichs von dem des Zielbereichs differieren, ansonsten
bleibt es gleich.
Bitte warten!Fn
Superbitmap --> Undo-Bitmap
sonst Division durch 0!
Wenn Zielbreite <> Quellbreite
Breite angleichen:
Bei Verkleinern
berstehendes St
ck entfernen:
$ Bei Vergr
Wenn Zielh
he <> Quellh
he angleichen:
Bei Verkleinern
berstehendes St
ck entfernen:
$ Bei Vergr
Superbitmap --> Undo-Bitmap
Berechnet den Bildpunkt (qx&,qy&) zu dem Punkt (px&,py&) nach der
Drehung um das Drehzentrum (zx&,zy&) um den Winkel zwischen der
Geraden durch Z und P und der Horizontalen.
ROUND nicht vergessen!
Berechnet den Winkel zwischen der Strecke ZP und der Horizontalen
durch Z. F
r den Winkel alpha gilt: 0<=alpha<2*PI
(1. Quadrant)
(4. Quadrant)
(2. und 3. Quadrant)
=============================================================================
================================= Menu "Spezial" ============================
Superbitmap --> Undo-Bitmap
Bitte warten!Fn
Spalte
Zeile
Wenn Punkt selbst schwarz
Wenn West-Punkt wei
Wenn Nord- und Nordwest-Punkt wei
Wenn S
d- und S
dwest-Punkt wei
Wenn Ost-Punkt wei
Wenn Nord- und Nordost-Punkt wei
Wenn S
d- und S
dost-Punkt wei
schen der berechneten und in x$ und y$ gespeicherten Punkte:
Superbitmap --> Undo-Bitmap
Bitte warten!Fn
Spalte
Zeile
Wenn Punkt selbst wei
Wenn West-Punkt schwarz
Wenn Nord- und Nordwest-Punkt schwarz
Wenn S
d- und S
dwest-Punkt schwarz
Wenn Ost-Punkt schwarz
Wenn Nord- und Nordost-Punkt schwarz
Wenn S
d- und S
dost-Punkt schwarz
Setzen der berechneten und in x$ und y$ gespeicherten Punkte:
Superbitmap --> Undo-Bitmap
Zuwenig Speicher!!
Superbitmap --> Undo-Bitmap
Oder-Verkn
pfung der Bitmaps
EXOR-Verkn
pfung der Bitmaps
Beispielwerte, solange spezial_shadow_einstellen noch in Arbeit
Zuwenig Speicher!!
Superbitmap --> Undo-Bitmap
Alte Form "outlinen":
Oder-Verkn
pfung der Bitmaps
EXOR-Verkn
pfung der Bitmaps
Aktuelles Muster setzen:
Dann liegt benutzerdefiniertes Muster vor
Sonst ist das aktuelle Muster aus dem GFA-Vorrat
Superbitmap --> Undo-Bitmap
Bitte wartenF
Warten, bis Blitter fertig ist
Wieder r
cksetzen
Aktuelles Muster sezten:
Dann liegt benutzerdefiniertes Muster vor
Sonst ist das aktuelle Muster aus dem GFA-Vorrat
Superbitmap --> Undo-Bitmap
JAM2 und INVERSVID
Wieder JAM1
Warten, bis Blitter fertig ist
Fn Wieder r
cksetzen
Nummer des Windows zum Muster-einstellen
llmuster einstellen (Mit linker Maustaste anklicken)Fn
Sonst kann es Probleme geben!
Boxen mit Mustern erzeugen:
Wieder r
cksetzen!!!
Warten, bis linke Maustaste gedr
ckt und Zeile, Spalte ermitteln
Zuordnung Zeile, Spalte zu Stil und Muster:
Wieder r
cksetzen!
Definieren des aktuellen F
llmusters durch den Benutzer.
Breite und H
he des von der Box
eingerahmten Bereichs: 16 Pixel
Alte Box l
schen:
Neue Box zeichnen:
Box l
schen:
Alle 16 Bits in der Breite bearbeiten
Zur Erkennung in Prozeduren zum F
llen, da
kein Muster
aus dem GFA-Vorrat das aktuelle Muster ist, sondern ein benutzerdefiniertes.
Erzeugt einen Rahmen um die Superbitplane, d.h. alle Punkte mit
extremalen Koordinaten werden gesetzt.
Undo-Arbeitsfl
che synchronisieren
Umrahmung
=============================================================================
================================= Menu "Graphik" ============================
Koordinaten des gew
hlten Punktes
Zeichnen von Linie (objekt|=0), Rechteck (objekt|=1), Kreis
(objekt|=2) oder Ellipse (objekt|=3)
Koordinaten des ersten Punktes
Anfangspunkt setzen (wird in der Schleife gel
scht)
altes Objekt l
schen
neues Objekt zeichnen
schen durch erneutes Zeichnen an letzte Position (Graphmode 2):
Undo-Bitmap synchronisieren
Aktuellen Graphikmodus setzen
Aktuelle Linienart setzen
Dem Graphikmodus entsprechend zeichnen
Durchgezogene Linienart setzen
Zum Zeichnen einer Bezier-Kurve mit dem GFA-BASIC-Befehl CURVE.
Koordinaten des ersten Punktes
Anfangswerte f
r zweiten Punkt
Anfangspunkt setzen (wird in der Schleife gel
scht)
alte Linie l
schen
neue Linie zeichnen
Bis linke Maustaste wieder losgelassen
Linie l
schen
Kurve
Bis linke Maustaste gedr
schen
F!% Undo-Bitmap synchronisieren
und gem
Graphikmodus
und Linienart
zeichnen
Fn# (durchgezogene Linienart)
hlen eines "Pinsels" und Zeichnen mit diesem.
=============================================================================
================================== Menu "Sonstiges" =========================
Kopiert den Inhalt der "Undo-Bitmap", sofern diese existiert, in die
Superbitmap.
)Fehler beim Kopieren der|Bitplaneinhalte!!
Normale Bitmap mit Superbitmap synchronisieren
(Superbitmap -> Normale Bitmap)
Zuwenig Speicher f
r Undo!
Wenn die Arbeitsfl
che gr
er als der Super-Layer ist, so verkleinert
diese Prozedur den Arbeitsfl
cheninhalt unter Beibehaltung des Seiten-
ltnisses so, da
der Arbeitsfl
cheninhalt auf einmal sichtbar ist
)Undo-Bitmap fehlt,|zuwenig Speicherplatz!!
Bitte warten!Fn
Arbeits-Bitmap -> Undo-Bitmap
(links oben: 0|0)
(urspr
ngliche Pos.)
Undo-Bitmap -> Arbeits-Bitmap
Tauscht Hintergrund- und Zeichenfarbe
=============================================================================
============================= Gadget-Routinen ===============================
Erzeugt ein umrandetes Boolean-Text-Gadget.
Speicher f
r Gadget-Struktur reservieren:
ubern!)
44 Bytes f
r Gadget-Struktur
16 Bytes f
r Border-Struktur
20 Bytes f
r Koordinaten f
r den Border
20 Bytes f
r IntuitionText-Struktur
Allgemeine Gadget-Struktur (44 Bytes):
kein weiteres Gadget
X-Wert der linken oberen Ecke (hier relativ zum rechten Rand)
Y-Wert der linken oberen Ecke
Breite des Klickbereiches
he des Klickbereiches
Gadget_Flags
Gadget_Activation (GADGIMMEDIATE, RELVERIFY, |TOGGLESELECT)
Gadget_GadgetType (BOOLGADGET)
F Zeiger auf Border-Struktur
Zeiger auf Graphik bei der Aktivierung
Zeiger auf Text
nicht unterst
Zeiger auf spezielle Informationen
Gadget-Nr.
(User-Data, keine Funktion)
Border-Strukur (zum Zeichnen der Umrahmung) (16 Bytes):
Offset in x-Richtung
Offset in y-Richtung
Hintergrundfarbe
Vordergrundfarbe
Zeichenmodus
Anzahl der Koordinatenpaare
Zeiger auf Koordinatentabelle
Keine weiteren Borders
Koordinaten-Tabelle f
r die Border (bei Rechteck 20 Bytes):
IntuitionText-Struktur (20 Bytes):
String nullterminieren!
Textl
nge ermitteln, damit Text mittig ausgegeben wird:
*IText
Textl
nge in Pixeln!
FrontPen
BackPen
DrawMode
AdjustToWord
LeftEdge
TopEdge
*TextAttr
*IText
*NextText
Gadget (an letzter Position) einf
Ausgangsvariablen setzen:
Erzeugt ein Boolean-Image-Gadget.
Speicher f
r Gadget-Struktur reservieren:
ubern!)
44 Bytes f
r Gadget-Struktur
20 Bytes f
r Image-Struktur
Allgemeine Gadget-Struktur (44 Bytes):
kein weiteres Gadget
X-Wert der linken oberen Ecke (hier relativ zum rechten Rand)
Y-Wert der linken oberen Ecke
Breite des Klickbereiches
he des Klickbereiches
Gadget_Flags (GADGHCOMP, GADGIMMAGE)
Gadget_Activation (RELVERIFY, GADGIMMEDIATE, |TOGGLESELECT)
Gadget_GadgetType (BOOLGADGET)
Zeiger auf Image-Struktur
Zeiger auf Image bei der Aktivierung
Zeiger auf Text
nicht unterst
Zeiger auf spezielle Informationen
Gadget-Nr.
(User-Data, keine Funktion)
Image-Struktur (20 Bytes):
x-Offset
y-Offset
Imagebreite
Imageh
Anzahl Bitplanes
Zeiger auf Image-Daten
PlanePick
PlaneOnOff
Zeiger auf weiteres Image
Gadget (an letzter Position) einf
Ausgangsvariablen setzen:
Erzeugt ein String-Gadget.
Speicher f
r Gadget-Struktur reservieren:
ubern!)
FF 44 Bytes f
r Gadget-Struktur
36 Bytes f
r StringInfo-Struktur
16 Bytes f
r Border-Struktur
20 Bytes f
r Koordinaten f
r den Border
=116 Bytes
max_char& Bytes f
r Textpuffer
max_char& Bytes f
r Undo-Puffer
Allgemeine Gadget-Struktur (44 Bytes):
kein weiteres Gadget
X-Wert der linken oberen Ecke (hier relativ zum rechten Rand)
Y-Wert der linken oberen Ecke
Breite des Klickbereiches
he des Klickbereiches
Gadget_Flags (GADGHCOMP)
Gadget_Activation (RELVERIFY,GADGIMMEDIATE,STRINGCENTER|STRINGRIGHT)
Gadget_GadgetType (STRGADGET)
F Zeiger auf Border-Struktur
Zeiger auf Graphik bei der Aktivierung
Zeiger auf Text
nicht unterst
Zeiger auf spezielle Informationen
Gadget-Nr.
(User-Data, keine Funktion)
SpecialInfo-Struktur (StringInfo) (36 Bytes):
Zeiger auf Textpuffer
Zeiger auf Undo-Puffer
Cursorposition
F Max. Anzahl Zeichen
Text ab diesem Zeichen ausgeben
Zeichenposition im Undo-Puffer
Anzahl Zeichen im Textpuffer
Anzahl der im Container sichtbaren Zeichen
horizontaler Container-Offset
vertikaler Container-Offset
Zeiger auf aktuellen Rastport
Eingabe bei Integer-Gadgets
Zeiger auf Tastaturbelegung
Border-Strukur (zum Zeichnen der Umrahmung) (16 Bytes):
Offset in x-Richtung
Offset in y-Richtung
Hintergrundfarbe
Vordergrundfarbe
Zeichenmodus
Anzahl der Koordinatenpaare
Zeiger auf Koordinatentabelle
Keine weiteren Borders
Koordinaten-Tabelle f
r die Border (bei Rechteck 20 Bytes):
Gadget (an letzter Position) einf
Ausgangsvariablen setzen:
Erzeugt ein Proportional-Autoknob-Gadget f
r Scrolling in horizontaler oder
vertikaler Richtung.
,int_puffer%
Speicher f
r Gadget-Struktur reservieren:
ubern!)
44 Bytes f
r Gadget-Struktur
22 Bytes f
r PropInfo-Struktur
8 Bytes f
r Intuition-Puffer
Summe: 74 Bytes f
r gesamte Struktur
Allgemeine Gadget-Struktur (44 Bytes):
kein weiteres Gadget
X-Wert der linken oberen Ecke
Y-Wert der linken oberen Ecke
Breite des Klickbereiches
he des Klickbereiches
Gadget_Flags (GADGHCOMP)
Gadget_Activation (GADGIMMEDIATE, RELVERIFY, |TOGGLESELECT)
Gadget_GadgetType (PROPGADGET)
Zeiger auf Graphik-Struktur
Zeiger auf Image bei der Aktivierung
Zeiger auf Text
nicht unterst
Zeiger auf spezielle Informationen
Gadget-Nr.
(User-Data, keine Funktion)
SpecialInfo-Struktur (PropInfo) (22 Bytes):
Flags (FREEVERT, AUTOKNOB)
X-Position des Schiebers
Y-Position des Schiebers
Balkenbreite / Schrittweite
Balkenh
he / Schrittweite
Flags (FREEHORIZ, AUTOKNOB)
X-Position des Schiebers
Y-Position des Schiebers
Balkenbreite / Schrittweite
Balkenh
he / Schrittweite
folgende sechs Worte werden von Intuition beschrieben:
Box-Breite
Box-H
absolute Schrittweite horizontal
absolute Schrittweite vertikal
X-Wert des linken Randes der Box
Y-Wert des oberen Randes der Box
Puffer f
r Eintragungen der aktuellen Daten durch Intuition (8 Bytes):
X-Position des Schiebers
Y-Position des Schiebers
Breite des Schiebers
he des Schiebers
Adresse der Speicherzellen f
r y-Position des Balkens
Adresse der Speicherzellen f
r x-Position des Balkens
Gadget (an letzter Position) einf
Ausgangsvariablen setzen:
Entfernt ein Gadget und gibt den f
r seine Struktur ben
tigten
Speicherplatz an das System zur
Nur, wenn Gadget existiert, sonst Absturz!
Fs Zur Verdeutlichung der Tatsache, da
das Gadget
! nicht mehr existiert!
=============================================================================
================================ Sonstiges ==================================
bertr
gt den Inhalt der Superbitmap in die "Undo-Bitmap", sofern diese
vorhanden ist.
Superbitmap mit normaler Bitmap synchronisieren
)Fehler beim Kopieren der|Bitplaneinhalte!!
Eingabe eines rechteckigen Bereiches durch den Benutzer mit der Maus.
Wenn gefuellt!=TRUE, dann wird der durch den Benutzer eingebene Bereich
durch ein gef
lltes Rechteck veranschaulicht.
Variablen l
schen
Warten, bis linke Maustaste gedr
ckt oder Menupunkt angew
Warten, bis Ereignis eintritt (Multitasking!)
Koordinaten der ersten Ecke
Startkoordinaten der zweiten Ecke
Wenn sich Mauszeigerkoordinaten ge
ndert
haben, Rechteck neu zeichnen
Box l
schen
Eingabe zweier Rechtecke, die in der Prozedur manipulationen_verzerren
als Quellrechteck (das erste einzugebende Reckteck) und als Zielrechteck
(das zweite einzugebende Reckteck) interpretiert werden. Dabei liegen
beide Rechtecke immer in demselben Quadranten, was die Ergonomie der
Bedienung verbessert (Eindeutigkeit, Konsistenz).
Quellbereich eingeben:
Quellbereichsbox markieren
Seitenverh
ltnis des Quell-Rechtecks x/y:
sv=(quell_rux&-quell_lox&+1)/(quell_ruy&-quell_loy&+1)
Eingabe des Zielbereiches:
IF x&<>ziel_x& OR y&<>ziel_y&
Gefordert: sv = (x&-ox&+1)/(y&-oy&+1)
Altes Ziel-Recheck l
schen
Neues Ziel-Recheck zeichnen
schen der Rechtecke und Berechnung wichtiger Gr
Quellbereichsmarkierung l
schen
Altes Ziel-Recheck l
schen
Linke obere Ecke des Zielbereichs:
Rechte untere Ecke des Zielbereichs:
Quellbereichsmarkierung l
schen
Realisierung der in GFA-Basic 3.0 nicht implementierten Intuition-Funktion
NewModifyProp() mittels des Befehls RCALL.
(Die unter GFA-Basic 3.0 vorhandene Funktion ModifyProp() funktioniert nicht
korrekt! Au
erdem w
re es ungeeignet, weil die folgenden Gadgets neu ge-
zeichnet werden, was evt. nachfolgende Toggle-Select-Boolean-Gadgets zer-
ren kann.
A0: Gadget
A1: Window
A2: Requester
D0: Flags
F D1: HorizPot
D2: VertPot
D3: HorizBody
~F D4: VertBody
D5: Numgad
Betriebssystemfunktionsaufruf
A0: *LayerInfo
A1: *Bitmap
A2: *Super-Bitmap
D4: Flags
Betriebssystemfunktionsaufruf
Adresse des Layers in D0
(Zu Testzwecken)
Zeichnet ein in einer String-Variablen gespeichertes Image mit der
Betriebssystem- (Graphics-) Funktion DrawImage() an die Stelle x&|y&
im Rastport rastport%. Das Image besitzt dabei die Breite breite&
und die H
he hoehe&.
Nicht genug Speicherplatz!
Image-Struktur (20 Bytes):
x-Offset
y-Offset
Imagebreite
Imageh
Anzahl Bitplanes
Zeiger auf Image-Daten
PlanePick
PlaneOnOff
Zeiger auf weiteres Image
(Ermittelt Speicherbedarf von mit GET zu erfassenden Bereichen (Eine Bitplane))
Umrechnung mm in Pixel:
Umrechnung Pixel in mm:
ckgabe:
Adresse des neu angelegten Rastports
Diese Funktion legt einen neuen Rastport an (inklusive Bitmap und einer
Bitplane), in den der durch lox&,loy&,rux&,ruy& spezifizierte Bereich,
aus dem Rastport quellrastport% kopiert wird. R
ckgabeparameter ist die
Adresse des neu geschaffenen Rastports oder, wenn etwas schiefgelaufen
ist, 0.
Diese Funktion liquidiert die durch rastport% angegebene Rastport-Struktur
sowie die zugeh
rige Bitmap-Struktur und gibt den f
r die Strukturen und
die Bitplane ben
tigten Speicher an das System zur
Breite und H
he aus der Bitmap-
Struktur
Funktion nie ohne RETURN, sonst Fehlermeldung!
=============================================================================